1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   | var scrollSmoothTo = function (position) {     if (!window.requestAnimationFrame) {         window.requestAnimationFrame = function(callback, element) {             return setTimeout(callback, 17);         };     }     // 当前滚动高度     var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;     // 滚动step方法     var step = function () {         // 距离目标滚动距离         var distance = position - scrollTop;         // 目标滚动位置         scrollTop = scrollTop + distance / 5;         if (Math.abs(distance) < 1) {             window.scrollTo(0, position);         } else {             window.scrollTo(0, scrollTop);             requestAnimationFrame(step);         }     };     step(); };
  if (typeof window.getComputedStyle(document.body).scrollBehavior == 'undefined') {    // 传统的JS平滑滚动处理代码... }
  |